mihomo 配置与使用

mihomo(原 Clash Meta)代理工具的配置与使用完整指南

#tech / ops #type / howto #status / growing

mihomo 配置与使用

[!info] related notes 见 obsidian笔记链接 中关于 mihomo 的链接示例。

目标

配置 mihomo(原 Clash Meta)代理工具,实现网络流量代理、分流规则和透明代理等功能。

前置条件

  • 已下载 mihomo 可执行文件(GitHub Releases
  • 有可用的代理订阅链接或手动配置的节点信息
  • 了解基本的代理协议(SS、SSR、VMess、Trojan、Hysteria2 等)

安装步骤

下载安装

# Linux / macOS
wget https://github.com/MetaCubeX/mihomo/releases/latest/download/mihomo-linux-amd64.gz
gunzip mihomo-linux-amd64.gz
chmod +x mihomo-linux-amd64
sudo mv mihomo-linux-amd64 /usr/local/bin/mihomo

# 验证安装
mihomo -v

Windows:从 GitHub Releases 下载 .exe 文件,放入 PATH 目录。

目录结构

~/.config/mihomo/
├── config.yaml          # 主配置文件
├── Country.mmdb         # GeoIP 数据库(自动生成)
├── proxies/             # 自定义节点配置(可选)
└── rules/               # 自定义规则集(可选)

配置文件结构

基础配置(config.yaml)

# 基础设置
port: 7890              # HTTP 代理端口
socks-port: 7891        # SOCKS5 代理端口
mixed-port: 7893        # 混合端口(HTTP + SOCKS5)
allow-lan: false         # 允许局域网连接
mode: rule              # 模式:rule / global / direct
log-level: info         # 日志级别

# 外部控制(Web UI)
external-controller: 127.0.0.1:9090
external-ui: ui
secret: ""              # 控制接口密码

Proxies(节点配置)

proxies:
  - name: "节点1-SS"
    type: ss
    server: example.com
    port: 443
    cipher: aes-256-gcm
    password: "your-password"

  - name: "节点2-VMess"
    type: vmess
    server: example.com
    port: 443
    uuid: your-uuid-here
    alterId: 0
    cipher: auto
    tls: true

  - name: "节点3-Trojan"
    type: trojan
    server: example.com
    port: 443
    password: "your-password"
    sni: example.com

  - name: "节点4-Hysteria2"
    type: hysteria2
    server: example.com
    port: 443
    password: "your-password"

Proxy Groups(策略组)

proxy-groups:
  - name: "Proxy"
    type: select             # 手动选择
    proxies:
      - "节点1-SS"
      - "节点2-VMess"
      - "节点3-Trojan"
      - "节点4-Hysteria2"
      - DIRECT

  - name: "Auto"
    type: url-test           # 自动测速选择最快节点
    proxies:
      - "节点1-SS"
      - "节点2-VMess"
      - "节点3-Trojan"
    url: http://www.gstatic.com/generate_204
    interval: 300            # 测速间隔(秒)

  - name: "Streaming"
    type: select
    proxies:
      - "Proxy"
      - "Auto"

Rules(分流规则)

rules:
  # 直连规则
  - DOMAIN-SUFFIX,local,DIRECT
  - DOMAIN-SUFFIX,localhost,DIRECT
  - IP-CIDR,127.0.0.0/8,DIRECT
  - IP-CIDR,172.16.0.0/12,DIRECT
  - IP-CIDR,192.168.0.0/16,DIRECT
  - GEOIP,CN,DIRECT

  # 代理规则
  - DOMAIN-SUFFIX,google.com,Proxy
  - DOMAIN-SUFFIX,github.com,Proxy
  - DOMAIN-SUFFIX,youtube.com,Streaming
  - DOMAIN-KEYWORD,twitter,Proxy

  # 使用规则集(Rule Providers)
  - RULE-SET,proxy,Proxy
  - RULE-SET,direct,DIRECT
  - RULE-SET,reject,REJECT

  # 兜底规则
  - MATCH,Proxy

订阅转换

大多数机场提供的订阅链接需要转换为 mihomo 格式:

# 使用 subconverter 进行订阅转换
# 在线转换(示例)
https://sub.xeton.dev/sub?target=clash&url=你的订阅链接

# 本地部署 subconverter
docker run -d --name subconverter \
  -p 25500:25500 \
  tindy2013/subconverter:latest

在配置中引用远程配置:

proxy-providers:
  my-provider:
    type: http
    url: "https://sub.example.com/sub?target=clash"
    interval: 3600
    path: ./proxies/my-provider.yaml
    health-check:
      enable: true
      interval: 600
      url: http://www.gstatic.com/generate_204

TUN 模式

TUN 模式可以接管系统所有流量(包括不支持代理的应用):

tun:
  enable: true
  stack: system          # 或 gvisor / mixed
  dns-hijack:
    - any:53
  auto-route: true       # 自动配置路由
  auto-detect-interface: true  # 自动检测出口网卡

[!warning] TUN 模式需要管理员/root 权限

系统代理设置

命令行启动

# 启动 mihomo
mihomo -d ~/.config/mihomo/

# 设置环境变量(Linux/macOS)
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7891

Windows 系统代理

启动 mihomo 后,Windows 设置 → 网络和 Internet → 代理:

  • 手动设置代理:127.0.0.1:7890

Web UI 管理

mihomo 支持外部 Web UI 管理面板:

external-controller: 127.0.0.1:9090
external-ui: ui

常用 Web UI:

验证

  • mihomo -d ~/.config/mihomo/ 启动无报错
  • 浏览器访问 http://127.0.0.1:9090 能看到控制面板
  • 代理测试:curl -x http://127.0.0.1:7890 https://www.google.com 能正常返回
  • 分流规则生效:国内站点直连、国外站点走代理
  • Web UI 显示节点列表和连接状态

常见问题

Q: 启动报错 “address already in use”? A: 端口被占用。检查是否有其他代理软件在运行(如 Clash、v2ray)。修改 config.yaml 中的端口号或停止冲突进程。

Q: 能上 Google 但 GitHub 连不上? A: 检查分流规则是否将 github.com 代理。可能是 DNS 污染,尝试在 DNS 配置中启用 enhanced-mode: fake-ip

Q: TUN 模式不生效? A: 确认以管理员/root 权限运行。检查 auto-routeauto-detect-interface 是否开启。Windows 可能需要关闭其他 VPN/TUN 软件。

Q: 订阅更新失败? A: 检查订阅链接是否有效、是否过期。网络问题可尝试手动下载订阅内容后放入本地文件。

Q: 如何实现开机自启? A: Linux:创建 systemd service。Windows:使用 nssm 或任务计划程序。macOS:创建 launchd plist。

# Linux systemd 示例
sudo tee /etc/systemd/system/mihomo.service <<EOF
[Unit]
Description=mihomo
After=network.target

[Service]
ExecStart=/usr/local/bin/mihomo -d /etc/mihomo
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable mihomo
sudo systemctl start mihomo
创建于 2026/4/9 更新于 2026/5/27